home *** CD-ROM | disk | FTP | other *** search
/ Celestin Apprentice 5 / Apprentice-Release5.iso / Source Code / Libraries / DCLAP 6d / dclap6d / vibrant / pictureP.h < prev    next >
Encoding:
C/C++ Source or Header  |  1996-07-05  |  5.7 KB  |  229 lines  |  [TEXT/R*ch]

  1. /*   pictureP.h
  2. * ===========================================================================
  3. *
  4. *                            PUBLIC DOMAIN NOTICE
  5. *            National Center for Biotechnology Information (NCBI)
  6. *
  7. *  This software/database is a "United States Government Work" under the
  8. *  terms of the United States Copyright Act.  It was written as part of
  9. *  the author's official duties as a United States Government employee and
  10. *  thus cannot be copyrighted.  This software/database is freely available
  11. *  to the public for use. The National Library of Medicine and the U.S.
  12. *  Government do not place any restriction on its use or reproduction.
  13. *  We would, however, appreciate having the NCBI and the author cited in
  14. *  any work or product based on this material
  15. *
  16. *  Although all reasonable efforts have been taken to ensure the accuracy
  17. *  and reliability of the software and data, the NLM and the U.S.
  18. *  Government do not and cannot warrant the performance or results that
  19. *  may be obtained by using this software or data. The NLM and the U.S.
  20. *  Government disclaim all warranties, express or implied, including
  21. *  warranties of performance, merchantability or fitness for any particular
  22. *  purpose.
  23. *
  24. * ===========================================================================
  25. *
  26. * File Name:  pictureP.h
  27. *
  28. * Author:  Jonathan Kans, Jill Shermer
  29. *
  30. * Version Creation Date:   10/23/92
  31. *
  32. * $Revision: 1.9 $
  33. *
  34. * File Description: 
  35. *
  36. * Modifications:  
  37. * --------------------------------------------------------------------------
  38. * Date     Name        Description of modification
  39. * -------  ----------  -----------------------------------------------------
  40. *
  41. *
  42. * ==========================================================================
  43. */
  44.  
  45. #ifndef _PICTUREP_
  46. #define _PICTUREP_
  47.  
  48. #ifndef _VIBRANT_
  49. #include <vibrant.h>
  50. #endif
  51.  
  52. #ifndef _PICTURE_
  53. #include <picture.h>
  54. #endif
  55.  
  56. #ifdef __cplusplus
  57. extern "C" {
  58. #endif
  59.  
  60. /*****************************************************************************
  61. *
  62. *   INTERNAL TYPE DEFINES
  63. *
  64. *****************************************************************************/
  65.  
  66. /*  Primitive types */
  67.  
  68. #define UNKNOWN     0
  69. #define PICTURE     1
  70. #define SEGMENT     2
  71. #define ATTRIBUTE   3
  72. #define RECTANGLE   4
  73. #define LINE        5
  74. #define SYMBOL      6
  75. #define BITMAP      7
  76. #define CUSTOM      8
  77. #define MARKER      9
  78. #define LABEL      10
  79.  
  80. #define SYMBOL_WIDTH   7
  81. #define SYMBOL_HEIGHT  7
  82.  
  83. #define ARROW_PIXELS    6
  84. #define ARROW_OVERHANG  0
  85.  
  86. #define ARROW_ASPECT  3
  87. #define ARROW_LENGTH  4
  88.  
  89. #define PEN_MAX  6
  90.  
  91. /*****************************************************************************
  92. *
  93. *   STRUCTURE TYPEDEFS
  94. *
  95. *****************************************************************************/
  96.  
  97. /*  BasePRec is the base record of each primitive,
  98.     storing the next pointer and an identity code */
  99.  
  100. typedef struct Nlm_baseprec {
  101.   struct Nlm_baseprec  PNTR next;
  102.   Nlm_Int1                  code;
  103. } Nlm_BasePData, Nlm_BasePRec, PNTR Nlm_BasePPtr;
  104.  
  105. typedef struct Nlm_segpdata {
  106.   Nlm_BoxInfo   box;
  107.   Nlm_BasePPtr  head;
  108.   Nlm_BasePPtr  tail;
  109.   Nlm_BasePPtr  parent;
  110.   Nlm_Boolean   visible;
  111.   Nlm_RecT      margin;
  112.   Nlm_Int4      maxscale;
  113.   Nlm_Int1      penwidth;
  114.   Nlm_Int1      highlight;
  115.   Nlm_Uint2     segID;
  116. } Nlm_SegPData;
  117.  
  118. typedef struct Nlm_segprec {
  119.   Nlm_BasePData  base;
  120.   Nlm_SegPData   seg;
  121. } Nlm_SegPRec, Nlm_PicPRec, PNTR Nlm_SegPPtr, PNTR Nlm_PicPPtr;
  122.  
  123. typedef struct Nlm_attpdata {
  124.   Nlm_Uint1  flags;
  125.   Nlm_Uint1  color [3];
  126.   Nlm_Int1   linestyle;
  127.   Nlm_Int1   shading;
  128.   Nlm_Int1   penwidth;
  129.   Nlm_Int1   mode;
  130.   Nlm_Int1   highlight;
  131. } Nlm_AttPData;
  132.  
  133. typedef struct Nlm_attprec {
  134.   Nlm_BasePData  base;
  135.   Nlm_AttPData   att;
  136. } Nlm_AttPRec, PNTR Nlm_AttPPtr;
  137.  
  138. typedef struct Nlm_recprec {
  139.   Nlm_BasePData  base;
  140.   Nlm_BoxInfo    box;
  141.   Nlm_RecT       rct;
  142.   Nlm_Int2       arrow;
  143.   Nlm_Boolean    fill;
  144.   Nlm_Int1       highlight;
  145.   Nlm_Uint2      primID;
  146. } Nlm_RecPRec, PNTR Nlm_RecPPtr;
  147.  
  148. typedef struct Nlm_linprec {
  149.   Nlm_BasePData  base;
  150.   Nlm_PntInfo    pnt1;
  151.   Nlm_PntInfo    pnt2;
  152.   Nlm_RecT       rct;
  153.   Nlm_Boolean    arrow;
  154.   Nlm_Int1       highlight;
  155.   Nlm_Uint2      primID;
  156. } Nlm_LinPRec, PNTR Nlm_LinPPtr;
  157.  
  158. typedef struct Nlm_symprec {
  159.   Nlm_BasePData  base;
  160.   Nlm_PntInfo    pnt;
  161.   Nlm_RecT       rct;
  162.   Nlm_Uint1Ptr   data;
  163.   Nlm_Uint2      primID;
  164. } Nlm_SymPRec, PNTR Nlm_SymPPtr;
  165.  
  166. typedef struct Nlm_btmprec {
  167.   Nlm_BasePData  base;
  168.   Nlm_PntInfo    pnt;
  169.   Nlm_RecT       rct;
  170.   Nlm_Uint1Ptr   data;
  171.   Nlm_Uint2      primID;
  172. } Nlm_BtmPRec, PNTR Nlm_BtmPPtr;
  173.  
  174. typedef struct Nlm_cstprec {
  175.   Nlm_BasePData   base;
  176.   Nlm_PntInfo     pnt;
  177.   Nlm_RecT        rct;
  178.   Nlm_CustomProc  proc;
  179.   Nlm_Uint2       primID;
  180. } Nlm_CstPRec, PNTR Nlm_CstPPtr;
  181.  
  182. typedef struct Nlm_mrkprec {
  183.   Nlm_BasePData  base;
  184.   Nlm_PntInfo    pnt;
  185.   Nlm_RecT       rct;
  186.   Nlm_Uint2      primID;
  187. } Nlm_MrkPRec, PNTR Nlm_MrkPPtr;
  188.  
  189. typedef struct Nlm_lblprec {
  190.   Nlm_BasePData  base;
  191.   Nlm_PntInfo    pnt;
  192.   Nlm_CharPtr    str;
  193.   Nlm_Int2       size;
  194.   Nlm_RecT       rct;
  195.   Nlm_Uint2      primID;
  196. } Nlm_LblPRec, PNTR Nlm_LblPPtr;
  197.  
  198. #define BasePData Nlm_BasePData
  199. #define BasePRec Nlm_BasePRec
  200. #define BasePPtr Nlm_BasePPtr
  201. #define SegPData Nlm_SegPData
  202. #define SegPRec Nlm_SegPRec
  203. #define PicPRec Nlm_PicPRec
  204. #define SegPPtr Nlm_SegPPtr
  205. #define PicPPtr Nlm_PicPPtr
  206. #define AttPData Nlm_AttPData
  207. #define AttPRec Nlm_AttPRec
  208. #define AttPPtr Nlm_AttPPtr
  209. #define RecPRec Nlm_RecPRec
  210. #define RecPPtr Nlm_RecPPtr
  211. #define LinPRec Nlm_LinPRec
  212. #define LinPPtr Nlm_LinPPtr
  213. #define SymPRec Nlm_SymPRec
  214. #define SymPPtr Nlm_SymPPtr
  215. #define BtmPRec Nlm_BtmPRec
  216. #define BtmPPtr Nlm_BtmPPtr
  217. #define CstPRec Nlm_CstPRec
  218. #define CstPPtr Nlm_CstPPtr
  219. #define MrkPRec Nlm_MrkPRec
  220. #define MrkPPtr Nlm_MrkPPtr
  221. #define LblPRec Nlm_LblPRec
  222. #define LblPPtr Nlm_LblPPtr
  223.  
  224. #ifdef __cplusplus
  225. }
  226. #endif
  227.  
  228. #endif
  229.